#ifndef HYBRIDPLUGIN_H
#define HYBRIDPLUGIN_H

#include <QString>
#include <QSharedPointer>

#include "hybridpluginplatform.h"

struct PlatformType;

class HybridPlugin
{
public:
    HybridPlugin();
    ~HybridPlugin();

    const QString& name() const;
    void setName(QString name);

    const QString& version() const;
    void setVersion(QString version);

    const QList< QSharedPointer<HybridPluginPlatform> >& platforms() const;
    void addPlatform(QSharedPointer<HybridPluginPlatform> platform);

    void selectPlatform(QSharedPointer<HybridPluginPlatform> platform);
    QSharedPointer<HybridPluginPlatform> selectedPlatform() const;

    QSharedPointer<HybridPluginPlatform> conformingVersion(const PlatformType& type);
    QString symbianDeploymentString(bool local);

private:
    QString m_name;
    QString m_version;
    QList< QSharedPointer<HybridPluginPlatform> > m_platforms;
    QSharedPointer<HybridPluginPlatform> m_selectedPlatform;

};

#endif // HYBRIDPLUGIN_H
